Drag a packaged application, or a single-fork application containing a 'plst' resource, or an Info.plist file and drop it on PlistChecker. PlistChecker displays a report listing any problems it found.
What PListChecker does:
• Verifies the UTF-8 encoding.
• Reports any XML/plist parsing errors.
• Reports any undocumented top-level keys.
• Checks the types of the values for most documented keys, and keys within the CFBundleDocumentTypes array.
• Reports keys recommended by TN 2013 that are missing from the plist.
These checks are based on my understanding of what a plist should look like, and should not be taken as gospel. PListChecker does not examine InfoPlist.strings files.
Version 1.0.1 changes: Allow <string>Yes</string> as an alternative to <true/> for LSPrefersCarbon, LSPrefersClassic, LSRequiresCarbon, and LSRequiresClassic.
Version 1.0.2 changes: When launched under an OS version earlier than 9.0, it now shows an alert and quits instead of crashing.